package com.situ.dao.cst_service;
import java.util.List;

import com.situ.util.Assist;
import com.situ.entity.cst_service.CstService;

import org.apache.ibatis.annotations.*;
/**
 * CstService的Dao接口
 * 
 * @author 
 *
 */
@Mapper
public interface CstServiceDao {

	/**
	 * 获得CstService数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	long getCstServiceRowCount(Assist assist);
	
	/**
	 * 获得CstService数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * 
	 * @param assist
	 * @return
	 */
	List<CstService> selectCstService(Assist assist);
	/**
	 * 通过CstService的id获得CstService对象
	 * 
	 * @param id
	 * @return
	 */
	CstService selectCstServiceById(Long id);
	
	/**
	 * 获得一个CstService对象,以参数CstService对象中不为空的属性作为条件进行查询,返回符合条件的第一条
	 * 
	 * @param obj
	 * @return
	 */
	CstService selectCstServiceObjSingle(CstService obj);
	
	/**
	 * 获得一个CstService对象,以参数CstService对象中不为空的属性作为条件进行查询
	 * 
	 * @param obj
	 * @return
	 */
	List<CstService> selectCstServiceByObj(CstService obj);

	/**
	 * 插入CstService到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertCstService(CstService value);
	
	/**
	 * 插入CstService中属性值不为null的数据到数据库
	 * 
	 * @param value
	 * @return
	 */
	int insertNotNullCstService(CstService value);
	
	/**
	 * 批量插入CstService到数据库,包括null值
	 * 
	 * @param value
	 * @return
	 */
	int insertCstServiceByBatch(List<CstService> value);
	/**
	 * 通过CstService的id删除CstService
	 * 
	 * @param id
	 * @return
	 */
	int deleteCstServiceById(Long id);
	
	/**
	 * 通过辅助工具Assist的条件删除CstService
	 * 
	 * @param assist
	 * @return
	 */
	int deleteCstServiceByAssist(Assist assist);
	
	/**
	 * 通过CstService的id更新CstService中的数据,包括null值
	 * 
	 * @param enti
	 * @return
	 */
	int updateCstServiceById(CstService enti);
	
	/**
	 * 通过CstService的id更新CstService中属性不为null的数据
	 * 
	 * @param enti
	 * @return
	 */
	int updateNotNullCstServiceById(CstService enti);
	
	/**
	 * 通过辅助工具Assist的条件更新CstService中的数据,包括null值
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateCstService(@Param("enti") CstService value, @Param("assist") Assist assist);
	
	/**
	 * 通过辅助工具Assist的条件更新CstService中属性不为null的数据
	 * 
	 * @param value
	 * @param assist
	 * @return
	 */
	int updateNotNullCstService(@Param("enti") CstService value, @Param("assist") Assist assist);


	@Insert("insert into cst_service(svr_type, svr_title, svr_cust_no, svr_cust_name, svr_status, svr_request, svr_create_id, svr_create_by, svr_create_date)\n" +
            " values(#{svr_type},#{svr_title},#{svr_cust_no},#{svr_cust_name},#{svr_status},#{svr_request},#{svr_create_id},#{svr_create_by},#{svr_create_date});")
    void save(CstService value);

    List<CstService> queryBylike(CstService value);

    @Update("update cst_service set svr_due_id=#{svr_due_id},svr_due_to=#{svr_due_to},svr_due_date=#{svr_due_date},svr_status=#{svr_status} where svr_id=#{svr_id}")
    void updatecreate(CstService value);

    List queryAll(String value);

    @Update("update cst_service set svr_deal=#{svr_deal},svr_deal_id=#{svr_deal_id},svr_deal_by=#{svr_deal_by},svr_deal_date=#{svr_deal_date},svr_status=#{svr_status} where svr_id=#{svr_id}")
    void updatedeal(CstService value);

    @Update("update cst_service set svr_result=#{svr_result},svr_satisfy=#{svr_satisfy},svr_status=#{svr_status} where svr_id=#{svr_id}")
    void updatedetail(CstService value);
}